#include <head.h>

int main(int argc, char const *argv[])
{
    int pipefd[2];
    pid_t pid;
    char buf[1024];

    //创建无名管道
    if(pipe(pipefd)==-1)
    {
        ERRLOG("管道创建失败");
        return -1;
    }

    //创建子进程
    pid == fork();
    if(pid ==-1)
    {
        ERRLOG("子进程创建失败");
        return -1;
    }
    else if(pid == 0)
    {
        memset(buf, 0, sizeof(buf));
        //关闭读端
        close(pipefd[0]);
       while (1)
       {
            printf("请输入信息\n");
            scanf("%s", buf);

             // 增加尾0
            buf[strlen(buf)] = '\0';

             // 如果用户的写入的是退出
            if (!strcmp(buf, "quie"))
            {
                // 写入到文件中
                write(pipefd[1], buf, strlen(buf));
                // 关闭文件
                close(pipefd[1]);

                // 回收子进程
                wait(NULL);
                // 结束进程
                exit(1);
            }
            // 写入到文件中
            write(pipefd[1], buf, strlen(buf));

            // 清空缓冲区
            memset( buf , 0 , sizeof(buf) );
       }

       

    }

    else if(pid > 0)
    {
          // 关闭写端
        close(pipefd[1]);
        while (1)
        {
            // 等待接收
            read( pipefd[0] , buf , sizeof(buf) );

            // 打印数据
            printf("接收到了:%s\n" , buf);

            // 如果用户的写入的是退出
            if (!strcmp(buf, "quie"))
            {
                // 关闭文件
                close(pipefd[0]);
                // 结束进程
                exit(1);
            }

            // 清空缓冲区
            memset( buf , 0 , sizeof(buf) );
        }

    }



    return 0;
}
